package com.ayf.payment.game.api.dto;

import com.ayf.payment.game.api.type.MerchantStatus;
import com.swwx.charm.commons.lang.base.BasicTO;
import lombok.Getter;

import javax.security.auth.Subject;
import java.math.BigDecimal;
import java.security.Principal;
import java.util.Date;

public class MerchantDTO extends BasicTO implements Principal {
    private static final long serialVersionUID = 1L;

    /**
     * 商户号
     */
    private Integer id;

    /**
     * 账号
     */
    private String loginAccount;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 商户类型：'PROXY'代理商户,'GENERAL'普通商户,'LOWER'下级商户
     */
    private String merchantType;

    /**
     * 状态 'PROHIBIT'禁用,'ENABLE'启用
     */
    private MerchantStatus status;

    /**
     * 公钥
     */
    private String publicKey;

    /**
     * 私钥
     */
    private String privateKey;

    /**
     * 联系人
     */
    private String name;

    /**
     * QQ
     */
    private String qq;

    /**
     * 标识   默认 VIP  内部
     */
    private String identification;

    /**
     * 标识ID 1 为默认
     */
    private Integer identificationId;

    private Integer proxyIdentificationId;

    /**
     * 最后活动时间
     */
    private Date LastActiveTime;

    private String merchantSecretKey;

    /**
     * 创建时间
     */
    private Date createTime;

    private Integer settleCycle;
    private Integer settleType;
    private String settleCycleCustom;
    private String isHavePayPwd;

    /**
     * 短验开关
     */
    private Integer smsStatus;
    private Integer payStatus;
    private Integer aliPayStatus;
    private Integer integralStatus;
    private Integer LoginId;
    private String LoginType;

    private MerchantBankDTO merchantBank;
    private String supportBankInfo;
    private BigDecimal balanceAmt;

    private String merchantPwdType;
    private String merchantPwd;
    private String confirmMerchantPwd;

    private String webSiteName;
    private String webSiteUrl;
    private Integer contractStatus;

    private String code;
    // 未结算金额
    private BigDecimal countNoSellteAmount;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public Integer getContractStatus() {
        return contractStatus;
    }

    public void setContractStatus(Integer contractStatus) {
        this.contractStatus = contractStatus;
    }

    /**
     * 实时结算状态 0关闭 1开启
     */
    private Integer realtimeSettleStatus;
    private String gameCashPublicKey;

    private String gameCashPrivateKey;
    private String token;
    private boolean isBindWx;
    private String domainName;
    private String registerUrl;
    private String netName;
    private Integer giftStatus;
    private Integer riskAmtStatus;
    // 经营地址省编码
    private String businessAddressProvinceCode;
    // 经营地址省名称
    private String businessAddressProvinceName;
    // 经营地址市编码
    private String businessAddressCityCode;
    // 经营地址市名称
    private String businessAddressCityName;
    // 经营地址区编码
    private String businessAddressAreaCode;
    // 经营地址区名称
    private String businessAddressAreaName;
    // 详细地址
    private String detailAddress;
    // 身份证号
    private String idCard;
    // 身份证有效期开始日期
    private String idCardValidityTimeStart;
    // 身份证有效期结束日期
    private String idCardValidityTimeEnd;
    // 身份证有效期类型 0 非长期 1 长期 默认为0
    private Integer idCardValidityTimeType;
    // 身份证号正面照片地址
    private String idCardFrontImg;
    // 身份证号背面照片地址
    private String idCardBackImg;
    // 操作IP
    private String operIp;
    /**
     * 平台支付宝代付状态 0-关 1-开 默认0
     */
    private Integer platformAlipayStatus;

    /**
     * 平台爱游宝代付状态 0-关 1-开 默认0
     */
    private Integer platformAybpayStatus;

    /**
     * 平台银行卡代付状态 0-关 1-开 默认0
     */
    private Integer platformBankpayStatus;
    /**
     * 微信自定义回复状态 0-关 1-开 默认0
     */
    private Integer wxReplyStatus;

    private String describe;
    // 代理商户ID
    private Integer agentMerchantId;
    // 代理账号
    private String agentLoginAccount;



    /**
     * 通讯协议 http socket
     */
    private String serviceAgreement;


    public Integer getWxReplyStatus() {
        return wxReplyStatus;
    }

    public void setWxReplyStatus(Integer wxReplyStatus) {
        this.wxReplyStatus = wxReplyStatus;
    }

    public Integer getPlatformBankpayStatus() {
        return platformBankpayStatus;
    }

    public void setPlatformBankpayStatus(Integer platformBankpayStatus) {
        this.platformBankpayStatus = platformBankpayStatus;
    }

    public Integer getPlatformAlipayStatus() {
        return platformAlipayStatus;
    }

    public void setPlatformAlipayStatus(Integer platformAlipayStatus) {
        this.platformAlipayStatus = platformAlipayStatus;
    }

    public Integer getPlatformAybpayStatus() {
        return platformAybpayStatus;
    }

    public void setPlatformAybpayStatus(Integer platformAybpayStatus) {
        this.platformAybpayStatus = platformAybpayStatus;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public String getGameCashPublicKey() {
        return gameCashPublicKey;
    }

    public void setGameCashPublicKey(String gameCashPublicKey) {
        this.gameCashPublicKey = gameCashPublicKey;
    }

    public String getGameCashPrivateKey() {
        return gameCashPrivateKey;
    }

    public void setGameCashPrivateKey(String gameCashPrivateKey) {
        this.gameCashPrivateKey = gameCashPrivateKey;
    }

    public Integer getIntegralStatus() {
        return integralStatus;
    }

    public void setIntegralStatus(Integer integralStatus) {
        this.integralStatus = integralStatus;
    }

    public Integer getAliPayStatus() {
        return aliPayStatus;
    }

    public void setAliPayStatus(Integer aliPayStatus) {
        this.aliPayStatus = aliPayStatus;
    }

    public Integer getLoginId() {
        return LoginId;
    }

    public void setLoginId(Integer loginId) {
        LoginId = loginId;
    }

    public String getLoginType() {
        return LoginType;
    }

    public void setLoginType(String loginType) {
        LoginType = loginType;
    }

    public Integer getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    public Integer getSmsStatus() {
        return smsStatus;
    }

    public void setSmsStatus(Integer smsStatus) {
        this.smsStatus = smsStatus;
    }
    public String getIsHavePayPwd() {
        return isHavePayPwd;
    }

    public void setIsHavePayPwd(String isHavePayPwd) {
        this.isHavePayPwd = isHavePayPwd;
    }

    public Integer getSettleType() {
        return settleType;
    }

    public void setSettleType(Integer settleType) {
        this.settleType = settleType;
    }

    public Integer getSettleCycle() {
        return settleCycle;
    }

    public void setSettleCycle(Integer settleCycle) {
        this.settleCycle = settleCycle;
    }

    public String getSettleCycleCustom() {
        return settleCycleCustom;
    }

    public void setSettleCycleCustom(String settleCycleCustom) {
        this.settleCycleCustom = settleCycleCustom;
    }

    public String getIdentification() {
        return identification;
    }

    public void setIdentification(String identification) {
        this.identification = identification;
    }

    public Integer getIdentificationId() {
        return identificationId;
    }

    public void setIdentificationId(Integer identificationId) {
        this.identificationId = identificationId;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getLastActiveTime() {
        return LastActiveTime;
    }

    public void setLastActiveTime(Date lastActiveTime) {
        LastActiveTime = lastActiveTime;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getLoginAccount() {
        return loginAccount;
    }

    public void setLoginAccount(String loginAccount) {
        this.loginAccount = loginAccount;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getMerchantType() {
        return merchantType;
    }

    public void setMerchantType(String merchantType) {
        this.merchantType = merchantType;
    }

    public MerchantStatus getStatus() {
        return status;
    }

    public void setStatus(MerchantStatus status) {
        this.status = status;
    }

    public String getPublicKey() {
        return publicKey;
    }

    public void setPublicKey(String publicKey) {
        this.publicKey = publicKey;
    }

    public String getPrivateKey() {
        return privateKey;
    }

    public void setPrivateKey(String privateKey) {
        this.privateKey = privateKey;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getQq() {
        return qq;
    }

    public void setQq(String qq) {
        this.qq = qq;
    }

    public String getName() {
        return name;
    }

    @Override
    public boolean implies(Subject subject) {
        return false;
    }

    public void setMerchantSecretKey(String merchantSecretKey) {
        this.merchantSecretKey = merchantSecretKey;
    }

    public String getMerchantSecretKey() {
        return merchantSecretKey;
    }

    public Integer getProxyIdentificationId() {
        return proxyIdentificationId;
    }

    public void setProxyIdentificationId(Integer proxyIdentificationId) {
        this.proxyIdentificationId = proxyIdentificationId;
    }

    public MerchantBankDTO getMerchantBank() {
        return merchantBank;
    }

    public void setMerchantBank(MerchantBankDTO merchantBank) {
        this.merchantBank = merchantBank;
    }

    public String getSupportBankInfo() {
        return supportBankInfo;
    }

    public void setSupportBankInfo(String supportBankInfo) {
        this.supportBankInfo = supportBankInfo;
    }

    public BigDecimal getBalanceAmt() {
        return balanceAmt;
    }

    public void setBalanceAmt(BigDecimal balanceAmt) {
        this.balanceAmt = balanceAmt;
    }

    public String getMerchantPwdType() {
        return merchantPwdType;
    }

    public void setMerchantPwdType(String merchantPwdType) {
        this.merchantPwdType = merchantPwdType;
    }

    public String getMerchantPwd() {
        return merchantPwd;
    }

    public void setMerchantPwd(String merchantPwd) {
        this.merchantPwd = merchantPwd;
    }

    public String getConfirmMerchantPwd() {
        return confirmMerchantPwd;
    }

    public void setConfirmMerchantPwd(String confirmMerchantPwd) {
        this.confirmMerchantPwd = confirmMerchantPwd;
    }

    public String getWebSiteName() {
        return webSiteName;
    }

    public void setWebSiteName(String webSiteName) {
        this.webSiteName = webSiteName;
    }

    public String getWebSiteUrl() {
        return webSiteUrl;
    }

    public void setWebSiteUrl(String webSiteUrl) {
        this.webSiteUrl = webSiteUrl;
    }

    public Integer getRealtimeSettleStatus() {
        return realtimeSettleStatus;
    }

    public void setRealtimeSettleStatus(Integer realtimeSettleStatus) {
        this.realtimeSettleStatus = realtimeSettleStatus;
    }

    public boolean isBindWx() {
        return isBindWx;
    }

    public void setBindWx(boolean bindWx) {
        isBindWx = bindWx;
    }

    public String getDomainName() {
        return domainName;
    }

    public void setDomainName(String domainName) {
        this.domainName = domainName;
    }

    public String getRegisterUrl() {
        return registerUrl;
    }

    public void setRegisterUrl(String registerUrl) {
        this.registerUrl = registerUrl;
    }

    public String getNetName() {
        return netName;
    }

    public void setNetName(String netName) {
        this.netName = netName;
    }

    public Integer getGiftStatus() {
        return giftStatus;
    }

    public void setGiftStatus(Integer giftStatus) {
        this.giftStatus = giftStatus;
    }

    public Integer getRiskAmtStatus() {
        return riskAmtStatus;
    }

    public void setRiskAmtStatus(Integer riskAmtStatus) {
        this.riskAmtStatus = riskAmtStatus;
    }

    public String getBusinessAddressProvinceCode() {
        return businessAddressProvinceCode;
    }

    public void setBusinessAddressProvinceCode(String businessAddressProvinceCode) {
        this.businessAddressProvinceCode = businessAddressProvinceCode;
    }

    public String getBusinessAddressProvinceName() {
        return businessAddressProvinceName;
    }

    public void setBusinessAddressProvinceName(String businessAddressProvinceName) {
        this.businessAddressProvinceName = businessAddressProvinceName;
    }

    public String getBusinessAddressCityCode() {
        return businessAddressCityCode;
    }

    public void setBusinessAddressCityCode(String businessAddressCityCode) {
        this.businessAddressCityCode = businessAddressCityCode;
    }

    public String getBusinessAddressCityName() {
        return businessAddressCityName;
    }

    public void setBusinessAddressCityName(String businessAddressCityName) {
        this.businessAddressCityName = businessAddressCityName;
    }

    public String getBusinessAddressAreaCode() {
        return businessAddressAreaCode;
    }

    public void setBusinessAddressAreaCode(String businessAddressAreaCode) {
        this.businessAddressAreaCode = businessAddressAreaCode;
    }

    public String getBusinessAddressAreaName() {
        return businessAddressAreaName;
    }

    public void setBusinessAddressAreaName(String businessAddressAreaName) {
        this.businessAddressAreaName = businessAddressAreaName;
    }

    public String getDetailAddress() {
        return detailAddress;
    }

    public void setDetailAddress(String detailAddress) {
        this.detailAddress = detailAddress;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public String getIdCardValidityTimeStart() {
        return idCardValidityTimeStart;
    }

    public void setIdCardValidityTimeStart(String idCardValidityTimeStart) {
        this.idCardValidityTimeStart = idCardValidityTimeStart;
    }

    public String getIdCardValidityTimeEnd() {
        return idCardValidityTimeEnd;
    }

    public void setIdCardValidityTimeEnd(String idCardValidityTimeEnd) {
        this.idCardValidityTimeEnd = idCardValidityTimeEnd;
    }

    public Integer getIdCardValidityTimeType() {
        return idCardValidityTimeType;
    }

    public void setIdCardValidityTimeType(Integer idCardValidityTimeType) {
        this.idCardValidityTimeType = idCardValidityTimeType;
    }

    public String getIdCardFrontImg() {
        return idCardFrontImg;
    }

    public void setIdCardFrontImg(String idCardFrontImg) {
        this.idCardFrontImg = idCardFrontImg;
    }

    public String getIdCardBackImg() {
        return idCardBackImg;
    }

    public void setIdCardBackImg(String idCardBackImg) {
        this.idCardBackImg = idCardBackImg;
    }

    public String getOperIp() {
        return operIp;
    }

    public void setOperIp(String operIp) {
        this.operIp = operIp;
    }

    public String getDescribe() {
        return describe;
    }

    public void setDescribe(String describe) {
        this.describe = describe;
    }

    public Integer getAgentMerchantId() {
        return agentMerchantId;
    }

    public void setAgentMerchantId(Integer agentMerchantId) {
        this.agentMerchantId = agentMerchantId;
    }

    public String getAgentLoginAccount() {
        return agentLoginAccount;
    }

    public void setAgentLoginAccount(String agentLoginAccount) {
        this.agentLoginAccount = agentLoginAccount;
    }

    public String getServiceAgreement() {
        return serviceAgreement;
    }

    public void setServiceAgreement(String serviceAgreement) {
        this.serviceAgreement = serviceAgreement;
    }

    public BigDecimal getCountNoSellteAmmount() {
        return countNoSellteAmount;
    }
    public void setCountNoSellteAmount(BigDecimal countNoSellteAmount) {
        this.countNoSellteAmount = countNoSellteAmount;
    }
}
